package com.zbkj.common.response.project;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Auther:
 * @Date: 2024/9/13 19:51
 * @Description:
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "EstimateRestProjectResponse对象", description = "项目估算结果响应对象")
public class EstimateRestProjectResponse implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("项目ID")
    private Long projectId;

    @ApiModelProperty("项目类型：1 国标项目，2 军标项目")
    private Integer projectType;

    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("0 待估算 10 已撤回 20 估算中 30 估算完成 40 报告中 50 已完成")
    private Integer status;

    @ApiModelProperty("是否通知客户端：0 未通知 1、已通知")
    private Integer estimateFlag;

    @ApiModelProperty("估算ai调用返回标识 0 无  1 ai已返回数据")
    private Integer aiNotfiyFlag;

    @ApiModelProperty("是否可完成确认标识： 0 不可确认  1 可触确认 （上传报告更新）  2 已通知客户端")
    private Integer reportFlag;

    @ApiModelProperty("ai估算请求流水号-编辑功能明显提交入参使用")
    private String aireqNo;

    @ApiModelProperty("省份code")
    private String provinceCode;
    @ApiModelProperty("省份名称")
    private String provinceName;
    @ApiModelProperty("市code")
    private String cityCode;
    @ApiModelProperty("市名称")
    private String cityName;

    @ApiModelProperty("调整前功能点数")
    private BigDecimal softwarePoints;
    @ApiModelProperty("估算软件规模")
    private BigDecimal softwareFun;
    @ApiModelProperty("软件评估费用")
    private BigDecimal softwareFee;
    @ApiModelProperty("人月费用")
    private BigDecimal perMonthFee;

    @ApiModelProperty("项目文件字符总数")
    private Long totalCharum;

    @ApiModelProperty("重用程度 军标重用程度选项 国标为0")
    private Integer reuseItem;

    @ApiModelProperty("重用程度 军标重用程度选项对应系数")
    private BigDecimal reuseVal;

    @ApiModelProperty("项目调整因子对象(根据项目类型不同包含国标和军标调整因子响应对象)")
    private ProjectParamResponse projectParam;

    @ApiModelProperty("功能点明细集合")
    List<EstimateFunDetailResponse> funDetailList;
}
